package com.demo10;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @program: fanxing
 * @description:
 * @author: 诸葛龙辰
 * @create: 2022-10-26 19:05
 **/
public class Test {
}
    @Target(value ={ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
 @interface A{
        /**
         *  一旦定义好属性如果该属性没有默认值，那么必须在使用该注解时指定属性的值
         */
        int age() default 18;
        //如果是数组那么在使用该注解是该属性的值 使用{}来给定
        String[] hobby();
        My  my();
        //枚举类型
        B b();
        //注解类型的属性
    }
@interface B{
    String name();
}

@A(hobby = {"游泳","跑步"},my=My.AGE,b=@B(name="张三"))
class Student{

}

enum My{
    TYPE,NAME,AGE
}

